home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
8434
/
8434.xpi
/
chrome
/
content
/
specifySites.js
< prev
next >
Wrap
Text File
|
2008-11-16
|
3KB
|
107 lines
var urlElement, STRINGS, siteListElement, addElement, typeElement, deleteElement, siteListTreeElement;
function init() {
urlElement = document.getElementById("url");
siteListElement = document.getElementById("site-list");
addElement = document.getElementById("add");
typeElement = document.getElementById("type");
deleteElement = document.getElementById("delete");
siteListTreeElement = document.getElementById("site-list-tree");
STRINGS = document.getElementById("strings");
urlElement.focus();
}
function addSpecifySiteEntry() {
var typeGroup = typeElement.selectedItem;
var url = urlElement.value;
if (url.length == 0) {
return;
}
switch (typeGroup.value) {
case "url":
try {
var ios = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService);
var uri = ios.newURI(url, "UTF-8", null);
} catch (ex) {
try {
var uri = ios.newURI("http://" + url, "UTF-8", null);
} catch (ex) {
alert(STRINGS.getString("urlNotValid"));
return;
}
}
url = uri.spec;
break;
case "url-prefix":
var position = url.indexOf("://");
if (position == -1) {
url = "http://" + url;
}
break;
case "domain":
var position = url.indexOf("://");
if (position > -1) {
url = url.substring(position + 3, url.length);
}
break;
default:
alert("Unrecognized site entry type '" + typeGroup.value + "'");
return;
}
var item = document.createElementNS(googleredesignedCommon.XULNS, "treeitem");
var row = document.createElementNS(googleredesignedCommon.XULNS, "treerow");
var typeCell = document.createElementNS(googleredesignedCommon.XULNS, "treecell");
typeCell.setAttribute("label", typeGroup.label);
typeCell.setAttribute("value", typeGroup.value);
var siteCell = document.createElementNS(googleredesignedCommon.XULNS, "treecell");
siteCell.setAttribute("label", url);
row.appendChild(typeCell);
row.appendChild(siteCell);
item.appendChild(row);
siteListElement.appendChild(item);
urlElement.value = "";
urlElement.focus();
addElement.disabled = true;
}
function closeSpecifySite() {
var data = [];
for (var i = 0; i < siteListElement.childNodes.length; i++) {
var currentRow = siteListElement.childNodes[i].firstChild;
data[i] = {type: currentRow.firstChild.getAttribute("value"), site: currentRow.childNodes[1].getAttribute("label")};
}
window.arguments[0](data);
}
function urlKeyPress(aEvent) {
if (aEvent.keyCode == 13) {
addSpecifySiteEntry();
aEvent.preventDefault();
}
}
function urlInput() {
addElement.disabled = !urlElement.value;
}
function siteListKeyPress(aEvent) {
if (aEvent.keyCode == 46) {
deleteSiteList();
}
}
function deleteSiteList() {
var itemsToRemove = getSelectedStyles();
for (var i = 0; i < itemsToRemove.length; i++) {
itemsToRemove[i].parentNode.removeChild(itemsToRemove[i]);
}
}
function changeSelection() {
deleteElement.disabled = getSelectedStyles().length == 0;
}
function getSelectedStyles() {
var selectedItems = [];
var rangeCount = siteListTreeElement.view.selection.getRangeCount();
for (var i = 0; i < rangeCount; i++) {
var start = {};
var end = {};
siteListTreeElement.view.selection.getRangeAt(i, start, end);
for (var c = start.value; c <= end.value; c++) {
selectedItems[selectedItems.length] = siteListTreeElement.view.getItemAtIndex(c);
}
}
return selectedItems;
}